﻿using System;
using System.Collections;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
using System.Data;
using System.Data.Linq;
using System.Linq;
using System.Web;
using System.Web.UI;
using Entidades.Sistema.Produccion;
using Mapping.Sistema.Produccion;

namespace Modelo.Sistema.Produccion
{
    public class CatalogoDiagramacionProduccion
    {
        private List<DiagramacionProduccion> Col_DiagramacionProduccion;

        public CatalogoDiagramacionProduccion()
        {
            List<DiagramacionProduccion> diagramaciones = (List<DiagramacionProduccion>)HttpContext.Current.Cache["Col_DiagramacionProduccion"];
            if (diagramaciones == null)
            {
                diagramaciones = MappingDiagramacionProduccion.ConsultarDiagramacionProduccion();
                HttpContext.Current.Cache["Col_DiagramacionProduccion"] = diagramaciones;
            }
            Col_DiagramacionProduccion = diagramaciones;
        }

        public List<DiagramacionProduccion> ListarDiagramacionProduccion()
        {
            return Col_DiagramacionProduccion;
        }
        public DiagramacionProduccion BuscarDiagramacionProduccion(int idDiagramacionProduccion)
        {
            return this.Col_DiagramacionProduccion.Find(x => x.IdDiagramacionProduccion == idDiagramacionProduccion);
        }

        public int AgregarDiagramacionProduccion(DiagramacionProduccion oDiagramacionProduccion)
        {
            MappingDiagramacionProduccion.AgregarDiagramacionProduccion(oDiagramacionProduccion);
            Col_DiagramacionProduccion.Add(oDiagramacionProduccion);
            HttpContext.Current.Cache["Col_DiagramacionProduccion"] = Col_DiagramacionProduccion;
            return oDiagramacionProduccion.IdDiagramacionProduccion;
        }

        public int CancelarDiagramacionProduccion(int id)
        {
            DiagramacionProduccion d = new DiagramacionProduccion();
            d = MappingDiagramacionProduccion.ConsultarDiagramacionProduccionLeerPorClave(id);
            Col_DiagramacionProduccion.RemoveAll(x => x.IdDiagramacionProduccion == id);
            Col_DiagramacionProduccion.Add(d);
            HttpContext.Current.Cache["Col_DiagramacionProduccion"] = Col_DiagramacionProduccion;
            return d.IdDiagramacionProduccion;
        }

        public void CambiarEstadoDiagramacionProduccion(DiagramacionProduccion oDiagramacionProduccion)
        {
            MappingDiagramacionProduccion.CambiarEstadoDiagramacionProduccion(oDiagramacionProduccion);
            Col_DiagramacionProduccion.RemoveAll(x => x.IdDiagramacionProduccion == oDiagramacionProduccion.IdDiagramacionProduccion);
            Col_DiagramacionProduccion.Add(oDiagramacionProduccion);
            HttpContext.Current.Cache["Col_DiagramacionProduccion"] = Col_DiagramacionProduccion;
        }

        public void ModificarDiagramacionProduccion(DiagramacionProduccion oDiagramacionProduccion)
        {
            MappingDiagramacionProduccion.ModificarDiagramacionProduccion(oDiagramacionProduccion);
            Col_DiagramacionProduccion.RemoveAll(x => x.IdDiagramacionProduccion == oDiagramacionProduccion.IdDiagramacionProduccion);
            Col_DiagramacionProduccion.Add(oDiagramacionProduccion);
            HttpContext.Current.Cache["Col_DiagramacionProduccion"] = Col_DiagramacionProduccion;
        }
        
    }
}
